package kgame5.kgu {
import kgame5.k3d.core.math.Vector3D;
import kgame5.kmath.MathDG;

/**
 * @author kk
 * 这个是用来计算弱点攻击用的
 * 直接原因是坦克的4个方向受攻击，用来判断是在哪个象限，从而决定伤害程度
 * 注意这个有个坦克半径的概念，如果炮弹落在了坦克范围内，则是FullHurt
 * 
 * 本质是计算两条射线的夹角
 * 计算的是XOZ平面上的炮弹落在敌人的哪个位置
 */
public class WeakAttackTester {
	public static const 
					FRONT:int=1,
					BACK:int=2,
					LEFT:int=3,
					RIGHT:int=4;
	//tank是tank的位置
	//shot是炮弹的位置
	//tankRotY是坦克旋转的角度
	public static function Test(tank:Vector3D,tankRotY:Number,shot:Vector3D):int{
		var dd:Vector3D=new Vector3D();
		Vector3D.SSub(shot, tank, dd);
		var angleDD:Number=dd.angleOfXOZ();
		//T.p("连线",angleDD);
		tankRotY=MathDG.C360(tankRotY);
		var tt:Number=angleDD-tankRotY;
		tt=MathDG.C360(tt);
		//T.p("角度差",tt);
		if(tt>=45&&tt<135){
			return RIGHT;
		}else if(tt>=135&&tt<225){
			return BACK;
		}
		else if(tt>=225&&tt<315){
			return LEFT;
		}else{
			return FRONT;
		}
	}
}//end of class
}
